﻿using Sheep_Breeding.ErrorCode;
using Sheep_Breeding.Write.Api.DTOSheep;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Sheep_Breeding.Write.Api.OperationServices.IServices
{
    /// <summary>
    /// 羊场管理实现接口
    /// </summary>
    public interface ISheepfarmServices
    {
        /// <summary>
        /// 新增羊场信息
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<ApiResult> CreateSheepfarm(CreateSheepfarmDto dto);


        /// <summary>
        /// 修改羊场信息
        /// </summary>
        /// <returns></returns>
        Task<ApiResult> UpdateSheepfarm(UpdateSheepfarmDto dto);

        /// <summary>
        /// 羊场信息删除操作
        /// </summary>
        /// <returns></returns>
        Task<ApiResult> DeleteSheepfarm(DeleteSheepfarmDto dto);


        /// <summary>
        /// 创建栋舍管理信息
        /// </summary>
        /// <returns></returns>
        Task<ApiResult> CreateBuildingManagement(CreateBuildingManagementDto dto);

        /// <summary>
        /// 修改栋舍管理信息
        /// </summary>
        /// <returns></returns>
        Task<ApiResult> UpdateBuildingManagement(UpdateBuildingManagementDto dto);

        /// <summary>
        /// 删除栋舍管理数据
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        Task<ApiResult> DeleteBuildingManagement(DeleteBuildingManagementDto dto);

        /// <summary>
        /// 创建栏位管理
        /// </summary>
        /// <returns></returns>
        Task<ApiResult> CreateField_management(CreateField_managementDto dto);

        /// <summary>
        /// 更新栏位管理
        /// </summary>
        /// <returns></returns>
        Task<ApiResult> UpdateField_management(UpdateField_managementDto dto);
        /// <summary>
        /// 删除栏位管理 
        /// </summary>
        /// <returns></returns>
        Task<ApiResult> DeleteField_management(DeleteField_managementDto dto);

        /// <summary>
        /// 批量删除羊场信息
        /// </summary>
        /// <param name="dto">批量删除DTO</param>
        /// <returns>返回操作结果</returns>
        Task<ApiResult> BatchDeleteSheepfarms(BatchDeleteSheepfarmsDto dto);

        /// <summary>
        /// 更新羊场状态（启用/禁用）
        /// </summary>
        /// <param name="dto">更新状态DTO</param>
        /// <returns>返回操作结果</returns>
        Task<ApiResult> UpdateSheepfarmStatus(UpdateSheepfarmStatusDto dto);

        /// <summary>
        /// 批量删除栋舍信息
        /// </summary>
        /// <param name="dto">批量删除DTO</param>
        /// <returns>返回操作结果</returns>
        Task<ApiResult> BatchDeleteBuildingManagement(BatchDeleteBuildingManagementDto dto);

        /// <summary>
        /// 更新栋舍状态（启用/禁用）
        /// </summary>
        /// <param name="dto">更新状态DTO</param>
        /// <returns>返回操作结果</returns>
        Task<ApiResult> UpdateBuildingManagementStatus(UpdateBuildingManagementStatusDto dto);
    }
}
